﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Box.Entities;


namespace Box.Repository
{
 public   class PagoCompraRepository:MasterRepository,IPagoCompraRepository
    {
        public List<PagoCompra> FindSearchingFromCuotasPagoCompraById(int id)
        {
            var query = from pg in Context.PagoCompras
                        .Include(pg=>pg.Compra)
                        orderby pg.FechaPagoCuota descending
                        where (pg.CompraId.Equals(id) && pg.Estado != "Pagado" && pg.Estado != "Anulado")
                        select pg;


            return query.ToList();
        }

        public List<PagoCompra> GetPagoCompraById(int id)
        {
            var query = from e in Context.PagoCompras
                 .Include("Compra")
                        orderby e.Compra.Proveedor descending
                        where e.Compra.IdProveedor.Equals(id)
                        select e;

            //return query.SingleOrDefault();
            return query.ToList();
        }

        public PagoCompra GetPagoById(int id)
        {
            return Context.PagoCompras.Find(id);
        }

        public void AddPagoCompra(PagoCompra pago)
        {
            Context.PagoCompras.Add(pago);
            Context.SaveChanges();
        }

        public void UpdatePagoCompra(PagoCompra pago)
        {
            Context.Entry(pago).State = EntityState.Modified;
            Context.SaveChanges();
        }

        public void DeletePagoCompra(int id)
        {
            //var pago = GetPagoById(id);


            var existe = Context.PagoCompras.Find(id);
            if (existe != null)
            {
                Context.Entry(existe).State = EntityState.Modified;
                existe.Estado = "Anulado";

                Context.SaveChanges();


            }
            //Context.PagoCompras.Remove(pago);
            //Context.SaveChanges();
        }

    }
}
